const Koa = require('koa');
const app = new Koa();

const json = require('koa-json');
const bodyParser = require('koa-bodyparser');
const Router = require('@koa/router');
const router = new Router();
const cors = require('@koa/cors');
const mongoose = require('mongoose');
const { BASE_URL } = require('./config/Account');

// 中间件
app.use(cors());
app.use(json());
app.use(bodyParser());

// 路由
const loginRoutes = require('./routes/user/index'); // 确保这里正确导入了路由模块
router.use('/apif', loginRoutes); // 注册路由

// 连接数据库并在成功后启动服务器
mongoose.connect(BASE_URL)
  .then(() => {
    console.log('数据库连接成功');
    
    // 数据库连接成功后，确保路由已经注册
    // 然后启动服务器
    app
      .use(router.routes()) // 注册路由处理函数
      .use(router.allowedMethods()); // 允许的方法，405 错误处理

    app.listen(8900, () => {
      console.log('服务器在端口 8900 上启动成功');
    });
  })
  .catch(err => {
    console.error('数据库连接失败!!!', err);
    process.exit(1); // 数据库连接失败时退出进程
  });

// 注意：不要在这里或其他地方再次调用 app.listen()，因为它已经在上面被调用过了。